#ifndef MANAGEFACE_H
#define MANAGEFACE_H

#include <QMainWindow>
#include <QObject>
#include <QWidget>
#include <QDebug>
#include <QSplitter> //分割器
#include <QGroupBox>
#include <QLabel>
#include <QPixmap>  //图片设置
#include <QHBoxLayout>   //水平布局
#include <QMap>
#include <QVBoxLayout>//垂直布局
#include <QTabWidget>    //用于创建带有选项卡的界面
#include <QTimer>    //定时器
#include <QDateTime> //时间戳
#include <QComboBox> //创建下拉列表
#include <QTreeWidget>  // 创建树形结构的部件
#include <QTreeWidgetItem>  // 表示QTreeWidget中的节点项，用于构建树形结构中的具体节点内容
#include <QHeaderView>// 用于管理树形部件、表格部件等的表头显示相关设置
#include <QFile>// QFile类用于文件操作，如读取、写入文件等
#include <QPushButton>
#include <QMessageBox>
#include <QScrollArea>  //用于超出页面后展示滚动条

#include "home.h"           //首页
#include "loginWidget.h"    //登陆界面
#include "testwidget.h"     //背景色测试文件
#include "patientregist.h"  //患者登录
#include "registration.h"   //门诊挂号
#include "blackList.h"      //黑名单管理
#include "registSelect.h"   //挂号查询
#include "patientList.h"    //患者列表
#include "chatwidget.h"

//#include <testwidget.h>

class manageFace : public QWidget
{
    Q_OBJECT
public:
    explicit manageFace(QWidget *parent = nullptr);

protected:
    void on_closeBtn_released();

    void on_setBtn_clicked();

    void on_manageBtn_clicked();

    void on_peelingBtn_released();

    //用于页面拖动的鼠标点击、移动、松开事件
    void mousePressEvent(QMouseEvent *event) override;
    void mouseMoveEvent(QMouseEvent *event) override;
    void mouseReleaseEvent(QMouseEvent *event)override;

private:
    void  Init ();
    QPoint oldPos; // 在类的私有成员中定义 oldPos
    //主页面
    QWidget* mainWidget;

    //创建主分割器，主页面上下布局
    QSplitter* mainSplitter;

    //下面的左右分割器，主页下面的部分左右布局
    QSplitter* lrSplitter;

    //顶部的分组框
    QGroupBox* topGroupBox;


    //换肤
    QPushButton *PeelingBtn;
    //设置
    QPushButton *setBtn;
    //管理员
    QPushButton *manageBtn;
    //关闭
    QPushButton *closeBtn;



    //下部的左边分组框
    QGroupBox* leftGroupBox;

    //主布局容器,垂直分布
    QVBoxLayout* mainLayout;

    //下部的布局容器，左右布局
    QHBoxLayout* bottomLayout;

    //把所有节点管理起来
    QMap<QString,QWidget*>  allWidgetList;

    // 选项卡部件
    QTabWidget *tabWidget;

    // 树形部件
    QTreeWidget *menuWidget;
    QTreeWidgetItem* headText;

    // 设置树形菜单部件的相关属性、添加节点等内容，构建菜单结构
    void setMenuWidget();

    // 处理树形菜单部件中节点被点击的事件，根据点击的节点进行相应操作
    void clickMenuWidget(QTreeWidgetItem *item, int column);

    // 关闭选项卡部件中指定索引的页面，并进行相关清理操作
    void closeSubWidget(int index);


    // 样式名称列表
    QStringList styleName;

    //根据传入的参数改变样式
    void changeStyle(QString styleText);

    // 设置选项卡部件的相关属性，如样式、关闭功能等
    void setTabWidget();

    // 文件对象，用于操作样式文件，如读取样式文件内容等
    QFile styleFile;

    //判断鼠标是否惦记在logo上
    bool isLogoPressed = false;

    //垂直
    QScrollArea *scrollArea;


    //测试用于打开页面
    testWidget* TestWidget;

};

#endif // MANAGEFACE_H
